﻿namespace RainbowNavBar.Converter
{
    public class HexColorToBrushConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is string hexColor && !string.IsNullOrWhiteSpace(hexColor))
            {
                // 处理以 # 开头的十六进制颜色值
                if (hexColor.StartsWith("#"))
                {
                    hexColor = hexColor.TrimStart('#');
                }

                // 确保输入的是6位十六进制颜色值
                if (hexColor.Length == 6)
                {
                    try
                    {
                        // 将十六进制颜色字符串转换为 Color 对象
                        Color color = (Color)ColorConverter.ConvertFromString("#" + hexColor);
                        return new SolidColorBrush(color); // 返回 Brush
                    }
                    catch
                    {
                        return Brushes.Transparent; // 如果转换失败，返回透明颜色
                    }
                }
            }
            return Brushes.Transparent; // 默认返回透明颜色
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException(); // 不需要实现 ConvertBack
        }
    }
}
